package Model;

import Controller.Controller;
import com.google.api.client.googleapis.media.MediaHttpDownloader;
import com.google.api.client.googleapis.media.MediaHttpDownloaderProgressListener;

/**
 * Klasa słuchacza do aktualizowania postępu ściągania plików.
 * @param controller - referencja na kontroller
 * @param filename - nazwa pliku
 */
public class FileDownloadProgressListener implements MediaHttpDownloaderProgressListener {

 private Controller controller;
 private String filename;
 
 public FileDownloadProgressListener(Controller controller, String filename) {
     this.controller = controller;
     this.filename = filename;
 }
 /**
  * Aktualizuje postęp.
  * @param downloader - referencja na applet do pobierania.
  */
  @Override
 public void progressChanged(MediaHttpDownloader downloader) {
      
      switch (downloader.getDownloadState()) {
        case MEDIA_IN_PROGRESS:
           controller.doUpdateDownloadProgress(filename, (int)(downloader.getProgress() * 100) );
          break;
        case MEDIA_COMPLETE:
           controller.doUpdateDownloadProgress(filename,100 );
    }

}
}


